
#ifndef ICE_CREAM_DRIVER_H
#define ICE_CREAM_DRIVER_H

#include "ice_cream_types.h"

// 硬件初始化
void ice_control_init(void) ;

// 检查设备是否就绪
bool ice_cream_control_is_ready(void);

// 轴控制
bool axis_xz_move_to(AxisPosition target);
bool axis_xz_is_moving(void);
AxisPosition axis_xz_get_current_pos(void);
bool axis_xz_homing(void);
bool axis_xz_is_homed(void);

// 杯子控制
bool cup_drop(void);
bool cup_is_present(void);

// 奶浆控制
bool milk_dispense_start(void);
bool milk_dispense_stop(void);

// 果酱控制
bool jam_dispense_start(uint8_t type);
bool jam_dispense_stop(uint8_t type);

// 顶料控制
bool topping_dispense_start(uint8_t type);
bool topping_dispense_stop(uint8_t type);

// 门控制
bool door_open(void);
bool door_close(void);
bool door_is_open(void);

// 取餐检测
bool takeaway_is_detected(void);

// 获取系统时间(ms)
uint32_t system_get_time_ms(void);

// 停止所有动作
void ice_cream_control_stop_all(void);

#endif // ICE_CREAM_CONTROL_H
    